package br.com.sistema.web.mb;

import java.util.List;

import br.com.framework.client.negocio.factory.FacadeFactory;
import br.com.framework.client.web.Paginador;
import br.com.framework.client.web.TipoOrdenacaoPaginador;
import br.com.sistema.entidade.Cliente;
import br.com.sistema.negocio.facade.IFacadeCliente;

public class ClientePaginador extends Paginador<String, Cliente> {

	private static final long serialVersionUID = 1472603786458828653L;

	private List<Cliente> clientes;
	private Cliente cliente;

	private TipoOrdenacaoPaginador typeOrder;

	public ClientePaginador(FacadeFactory facadeFactory, Cliente cliente, TipoOrdenacaoPaginador typeOrder) {
		super(facadeFactory);
		this.cliente = cliente;
		this.typeOrder = typeOrder;
	}

	@Override
	public List<Cliente> consultar(int primeiraLinha, int numeroDeLinhas, String orderBy, boolean descendente) {
		return consultar(primeiraLinha, numeroDeLinhas);
	}

	private List<Cliente> consultar(int primeiraLinha, int numeroDeLinhas) {
		clientes = facadeFactory.getFacade(IFacadeCliente.class).buscar(cliente, typeOrder, primeiraLinha, numeroDeLinhas);
		return clientes;
	}

	@Override
	public String getChavePrimaria(Cliente cliente) {
		return cliente.getId() + "";
	}

	@Override
	public String getDefaultOrderBy() {
		return null;
	}

	@Override
	public int getTotalLinhas() {
		return facadeFactory.getFacade(IFacadeCliente.class).buscarTotal(cliente);
	}

	@Override
	public Cliente pesquisarPorChavePrimaria(String pk) {
		return null;
	}

	public List<Cliente> getClientes() {
		return clientes;
	}

	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}

}
